<?php
header("Content-type: text/html; charset=utf-8");

function msubstr($str, $length, $start = 0, $charset = "utf-8", $suffix = true){
    $str = trim(strip_tags($str));
    if (function_exists("mb_substr"))
        $slice = mb_substr($str, $start, $length, $charset);
    elseif (function_exists('iconv_substr')) {
        $slice = iconv_substr($str, $start, $length, $charset);
        if (false === $slice) {
            $slice = '';
        }
    } else {
        $re['utf-8'] = "/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
        $re['gb2312'] = "/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
        $re['gbk'] = "/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
        $re['big5'] = "/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
        preg_match_all($re[$charset], $str, $match);
        $slice = join("", array_slice($match[0], $start, $length));
    }
    $omit = mb_strlen($str) >= $length ? '...' : '';
    return $suffix ? $slice . $omit : $slice;
}


$time = time();
$dst_path = './template.png';	//源图片
$dst__path = './generate/'.$time.'.png';	// 保存图片地址

//创建图片的实例
$dst = imagecreatefromstring(file_get_contents($dst_path));
// $dst = imagecreatefrompng($dst_path);

// ----------------------- 打上文字 ------------------------------
$font = './pingfang.TTF';//字体 绝对地址
$font_b = './pingfang_b.TTF';//加粗字体 绝对地址

$color34 = imagecolorallocate($dst, 34,34,34);//字体颜色
$color111 = imagecolorallocate($dst, 111,111,111);//字体颜色
$color140 = imagecolorallocate($dst, 140,140,140);//字体颜色

//  资源  大小  旋转角度  X  Y  颜色 字体 文字
$real_name = '欧阳震华';
imagefttext($dst, 32, 0, 98, 137, $color34, $font_b, $real_name);	// 姓名 左下方
$position_x = ( ceil( strlen( $real_name ) / 3 ) * 40 ) + 171;
imagefttext($dst, 25, 0, $position_x, 137, $color111, $font, '技术总监');	// 职位 左下方   4个字:331 3:291 2:251 1:211
imagefttext($dst, 30, 0, 98, 250, $color111, $font_b, '上海某某某信息科技有限公司');// 企业 左下方  超过 12字 ...
imagefttext($dst, 25, 0, 156, 370, $color140, $font, '131****5127');// 电话 左下方
imagefttext($dst, 25, 0, 156, 431, $color140, $font, 'admin@qq.cn');// 邮箱 左下方
imagefttext($dst, 25, 0, 156, 500, $color140, $font, 'http://www.qq.cn');// 网址 左下方
imagefttext($dst, 23, 0, 156, 560, $color140, $font,  msubstr( '中国上海市青浦区崧泽大道333号 B座1203A室' , 21 ) );// 地址 左下方 超过 21字 ...
// ----------------------- 打上文字 ------------------------------



////----------------------- 打上图片 -----------------------
$src_path = './logo.png';
$src = imagecreatefromstring(file_get_contents($src_path));
//获取水印图片的宽高
list($src_w, $src_h) = getimagesize($src_path);

//将水印图片复制到目标图片上，最后个参数50是设置透明度，这里实现半透明效果
// imagecopymerge($dst, $src, 10, 10, 0, 0, $src_w, $src_h, 50);
//如果水印图片本身带透明色，则使用imagecopy方法
imagecopy($dst, $src, 800, 200, 0, 0, $src_w, $src_h);// 左上方
////----------------------- 打上图片 -----------------------



//输出图片
list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);
switch ($dst_type) {
    case 1://GIF
        header('Content-Type: image/gif');
        imagegif($dst);
        break;
    case 2://JPG
        header('Content-Type: image/jpeg');
        imagejpeg($dst);
        break;
    case 3://PNG
        header('Content-Type: image/png');
        imagepng($dst,$dst__path);
        break;
    default:
        break;
}
imagedestroy($dst);

header( "Location:img.php?time=".$time );
